package ltd.hanamaki.study.base;

/**
 * 类型转换
 */
public class Demo04 {

    public static void main(String[] args) {

        /* 数据类型的转换 */
        /* 1. 从高到低 强转 ：语法：想要转成的数据类型 变量名 = (想要转成的数据类型)大的变量名 */
        /* 1. 从低到高 自动转换 ：语法：直接赋值即可 */

        int i = 128;
        byte b = (byte) i;
        long l = i;
        System.out.println(b);

        /* 如果 将 浮点数 转换为 整数 */
        float f = 1.23456f;
        int ii = (int) f;
        System.out.println(ii);

        /* 字符串数字可否转数字类型？可以 */
        System.out.println("" + 123 + 123); // 123123
        System.out.println(123 + 123 + ""); // 246

        String num = "123456";
        System.out.println(num + 7);

        /* 想要将 字符串数字 转换成 数值类型数字 需要使用 包装类 */
        int num1 = Integer.parseInt(num);
        int num2 = Integer.valueOf(num);
        System.out.println(num2 + 7);

        /* 字符串类型  true 或者 false  是否可以转换为  布尔类型 */
        String flag = "false";
        boolean flag1 = Boolean.parseBoolean(flag);
        if (flag1) {

        }

        /* 字符的 类型转换 */
        /* 如果 在一个表达式中 有 long 类型 那么计算机过为 long 类型 如果没有 ，有int 结果为 int 类型 */
        char a = 'a';
        System.out.println(a + 1);
        int bb = a + 1;
        System.out.println((char) bb);

        /* 大数字 */
        /* 10亿 */
        int money = 1000000000;
        /* 在jdk 1.7 支持下划线 */
        int money1 = 10_0000_0000;
        System.out.println(money);
        System.out.println(money1);

        System.out.println((long) money1 * 20);

        /* 被final 修饰的 变量 叫做常量 */
        final float PI = 3.1415926f;

        /* 在Java中的  数学 公式类 */
        System.out.println(Math.PI);
        System.out.println(Math.pow(2, 2));



    }
}
